// -----------------------------
// Author: 		Dhaenens Gert 
// Creation: 	2/15/2015 8:54:02 PM				
// -----------------------------

#ifndef _IGame_h
#define _IGame_h

#include "Common.h"

namespace Flow
{

	class IGame
	{
	public:

		// Release the Game
		// Usually just 'delete this'
		virtual void	Release() = 0;

		// Queries the game for it's configs
		virtual void	QuerySettings(GameConfig& config) = 0;

		// Called when the Game should initialize
		// Use this to set up states and such
		virtual void	OnInitialize() = 0;

		// Called when the Game is Activated
		virtual void	OnActivate() = 0;
		// Called when the Game is Deactivated
		virtual void	OnDeactivate() = 0;

	};

}

#endif